home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / avr32 / include / asm / byteorder.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  842 b   |  38 lines

  1. /*
  2.  * AVR32 endian-conversion functions.
  3.  */
  4. #ifndef __ASM_AVR32_BYTEORDER_H
  5. #define __ASM_AVR32_BYTEORDER_H
  6.  
  7. #include <asm/types.h>
  8. #include <linux/compiler.h>
  9.  
  10. #define __BIG_ENDIAN
  11. #define __SWAB_64_THRU_32__
  12.  
  13. #ifdef __CHECKER__
  14. extern unsigned long __builtin_bswap_32(unsigned long x);
  15. extern unsigned short __builtin_bswap_16(unsigned short x);
  16. #endif
  17.  
  18. /*
  19.  * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
  20.  * the result.
  21.  */
  22. #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
  23. static inline __attribute_const__ __u16 __arch_swab16(__u16 val)
  24. {
  25.     return __builtin_bswap_16(val);
  26. }
  27. #define __arch_swab16 __arch_swab16
  28.  
  29. static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
  30. {
  31.     return __builtin_bswap_32(val);
  32. }
  33. #define __arch_swab32 __arch_swab32
  34. #endif
  35.  
  36. #include <linux/byteorder.h>
  37. #endif /* __ASM_AVR32_BYTEORDER_H */
  38.